import 'package:flutter/material.dart';
import 'package:yuanquan/routes/Homepage.dart';
import 'package:yuanquan/routes/Page2.dart';
import 'package:yuanquan/routes/Page3.dart';

/// 实现主页底部多页切换可以通过 BottomNavigationBar 与 PageView 配合来完成。
/// BottomNavigationBar 用于显示底部导航栏，PageView 用于管理页面切换。
/// _currentIndex：用于跟踪当前选中的底部导航项。
// _pageController：控制 PageView 的页面切换。
// _pages：存储所有页面的列表。
// _onPageChanged：当页面切换时更新当前索引。
// _onItemTapped：当底部导航项被点击时，切换到相应的页面。

class MainPage extends StatefulWidget {
  @override
  _MainPageState createState() => _MainPageState();
}

class _MainPageState extends State<MainPage> {
  int _currentIndex = 0;
  PageController _pageController = PageController();

  final List<Widget> _pages = [
    HomePage(),
    Page2(),
    Page3(),
  ];

  void _onPageChanged(int index) {
    setState(() {
      _currentIndex = index;
    });
  }

  void _onItemTapped(int index) {
    _pageController.jumpToPage(index);
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Bottom Navigation'),
      ),
      body: PageView(
        controller: _pageController,
        onPageChanged: _onPageChanged,
        children: _pages,
      ),
      bottomNavigationBar: BottomNavigationBar(
        currentIndex: _currentIndex,
        onTap: _onItemTapped,
        items: [
          BottomNavigationBarItem(
            icon: Icon(Icons.home),
            label: 'Home',
          ),
          BottomNavigationBarItem(
            icon: Icon(Icons.search),
            label: 'Search',
          ),
          BottomNavigationBarItem(
            icon: Icon(Icons.person),
            label: 'Profile',
          ),
        ],
      ),
    );
  }
}